import { request } from '@/utils/request'

// 创建收藏夹
export interface CollectionModel {
  id: number
  fid: number
  mid: number
  title: string // 文件夹名
}

/**
 * @param title 收藏夹标题名称
 */
export const reqCollection = (title: string) =>
  request<CollectionModel>({
    method: 'POST',
    url: '/v3/fav/folder/add',
    data: { title },
  })

// 默认收藏夹信息
export interface list {
  mid: number
  name: string // 创建者名称
  face: string // 创建者封面url
}

export interface play {
  play: number // 播放数
}
export interface CollectionInfoModel {
  id: number
  fid: number
  mid: number
  title: string // 文件夹名
  cover: string // 封面url
  upper: list
  cnt_info: play
  intro: string //备注
  ctime: number // 创建时间(时间戳)
  mtime: number // 收藏时间(时间戳)
  media_count: number // 收藏夹内容数量
}

/**
 * @param media_id 目标收藏夹mlid（完整id）
 */
export const reqCollectionInfo = (media_id: number) =>
  request<CollectionInfoModel>({
    method: 'GET',
    url: '/v3/fav/folder/info',
    params: { media_id },
  })

// 收藏视频列表
export interface CollectionListModel {
  medias: [
    {
      id: number
      bvid: string
      title: string
      cover: string
      duration: number // 视频时长
      upper: {
        mid: number
        name: string // 发布者名称
      }
      cnt_info: {
        collect: number // 收藏数
        play: number
      }
      ctime: number
      pubtime: number
      fav_time: number
    },
  ]
}

/**
 * @param media_id 目标收藏夹mlid（完整id）
 * @param pn 页码
 * @param ps 每页数量
 */
export const reqCollectionList = (media_id: number) =>
  request<CollectionListModel>({
    method: 'GET',
    url: '/v3/fav/resource/list',
    params: { media_id, ps: 20 },
  })

//* --------------根据uid获取用户创建的收藏夹----------------------

export interface CreatedCollectModel {
  count: number //创建的收藏夹个数
  list: {
    id: number //收藏夹mid 此为完整id，相当于原始fid+创建者mid后两位
    fid: number //收藏夹原始id
    mid: number // 创建者的mid，相当于用户uid
    title: string //收藏夹名
    fav_state: 1 | 0 //目标id是否存在于该收藏夹 1为肯定
    media_count: number //收藏夹内容数量
  }[]
}

export const reqCreatedCollect = (up_mid: number) =>
  request<CreatedCollectModel>({
    url: '/v3/fav/folder/created/list-all',
    params: { up_mid, type: 2 },
  })
